• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

308
Vistas
¿Puede Linux flock(fd, LOCK_EX|LOCK_NB) fallar espuriamente?

Considere una situación en la que dos procesos realizan intentos simultáneos de colocar un bloqueo exclusivo en algún archivo usando flock(fd, LOCK_EX|LOCK_NB) .

Como se indicó, los intentos son sin bloqueo , por lo que se supone que uno de los dos procesos falla con EWOULDBLOCK .

Aquí está mi pregunta: ¿La implementación (Linux) de flock() garantiza que exactamente uno de los dos procesos tendrá éxito en cada caso? ¿O es posible que ambos terminen fallando con EWOULDBLOCK incluso cuando nadie más interfiere?

En resumen, ¿puede flock(fd, LOCK_EX|LOCK_NB) fallar falsamente con EWOULDBLOCK ?

Estoy principalmente interesado en la versión de flock() que ofrece Linux, pero la información sobre flock() en otros sistemas, como OS X, es muy bienvenida.

Además, supongo que la respuesta es la misma independientemente de si los bloqueos son exclusivos ( LOCK_EX ) o compartidos ( LOCK_SH ). Si no, házmelo saber.

about 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Hombre leyendo rebaño(2) :

EWOULDBLOCK El archivo está bloqueado y se seleccionó el indicador LOCK_NB.

Entonces, obtener EWOULDBLOCK significa que el archivo ya está bloqueado. Si se garantiza que sus dos procesos son los únicos involucrados, nunca obtendrán EWOULDBLOCK en el mismo archivo al mismo tiempo.

Tenga en cuenta que los hilos son una historia diferente. Los subprocesos normalmente comparten descriptores de archivo, por lo que varios subprocesos dentro del mismo proceso pueden llamar a flock() con éxito en el mismo archivo.

about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda